package 强化训练;

import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.Deque;
import java.util.Scanner;

public class 参数解析11 {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        String[] s = str.split(" ");
        Deque<String> stack = new ArrayDeque<>();//保存具有“”的字符串
        ArrayList<String> res = new ArrayList<>();//结果存放到该数组中
        for (String i : s) {//遍历输入的字符串
            if (i.contains("\"") && stack.isEmpty()){//栈为空，并且包含引号，直接入栈
                stack.addLast(i);
            }else if (i.contains("\"") && !stack.isEmpty()){//栈不为空，包含字符串
                String temp = "";//创建一个新的字符串
                if ("".equals(temp)){//如果开始temp 为 “”，将栈内的第一个串的引号去点以后拼接
                    String d = stack.pop();
                    temp += d.substring(1,d.length()) + " ";
                }
                while (!stack.isEmpty()){//否则将栈内的串直接凭借后返回
                    temp += stack.pop() + " ";
                }
                temp += i.substring(0,i.length()-1);//在将不包含的i拼接到temp上去点引号，添加到结果数组中
                res.add(temp);
            }else if (!stack.isEmpty() && !i.contains("\"")){//如果栈不为空，直接入栈
                stack.addLast(i);
            }else {//栈空，不包含引号，直接添加
                res.add(i);
            }
        }
        while(!stack.isEmpty()){//最后还需要遍历栈，将栈内的元素添加到res中
            String ss = stack.pop().replace("\"","");
            res.add(ss);
        }
        //开始输出
        System.out.println(res.size());
        for (String re : res) {
            System.out.println(re);
        }
    }
}
